﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using sipfe.model;
using sipfe.service.seguridad;
using sipfe.bean;
using sipfe.util;
using System.Web.Security;

namespace sipfe.Controllers.logon
{
    public class SeguridadController : Controller
    {
        public ActionResult Index()
        {
            return View("~/Views/Index.cshtml");
        }
        public ActionResult Logon()
        {
            return View();

        }       
        [HttpPost]
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                LogonUsuarioService logonService = new LogonUsuarioService();
                UsuarioBean usuarioBean = new UsuarioBean();
                usuarioBean = logonService.validarUsuario(model);
                if (usuarioBean != null)
                {
                    Session[Constante.V_COD_USUARIO]        =   usuarioBean.VCodUsuario;
                    Session[Constante.N_IDE_USUARIO]        =   usuarioBean.NIdeUsu;
                    Session[Constante.N_IDE_PERFIL]         =   usuarioBean.NIdePerfil;
                    Session[Constante.N_IDE_FUNCIONARIO]    =   usuarioBean.NIdeFuncionario;
                    Session[Constante.N_IDE_DEPENDENCIA]    =   usuarioBean.NIdeDep;
                    Session[Constante.V_DEPENDENCIA]        =   usuarioBean.VDependencia;
                    Session[Constante.PERFIL]               =   usuarioBean.VPerfil;
                    Session[Constante.N_IDE_REGION]         =   usuarioBean.NIdeDepRegion;
                    Session[Constante.NOMBRE]               =   usuarioBean.VNombre;
                    Session[Constante.N_IDE_PERSONA]        =   usuarioBean.NIdePersona;

                    //usuarioBean.NIdePersona     =   item.nIdePersona.ToString(); 

                    String url = Url.Content("~/");

                    FormsAuthentication.SetAuthCookie(usuarioBean.VCodUsuario, false);

                    return RedirectToAction("bandejaCab", "Bandeja/Bandeja");
                }
                else
                {
                    ModelState.AddModelError("", "Por Favor; su Código de Usuario y/o Password incorrecto(s), o el usuario está deshabilitado...");
                }
            }
            return View(model);
        }

        public ActionResult LogOff()
        {
            System.Web.SessionState.HttpSessionState mySession = System.Web.HttpContext.Current.Session;
            mySession.Clear();
            mySession.RemoveAll();
            FormsAuthentication.SignOut();
            return RedirectToAction("Index", "Seguridad");
        }
    }
}
